Flutter 提供了两种形式的进度条:

  • 圆形的:CircularProgressIndicator
  • 线型的:LinearProgressIndicator

和 Android 不同的是,Flutter 的进度条都提供两种模式,精准进度和模糊进度,都分成两种形态,一种是显示具体进度值,一种是模糊的、只是在执行一个动画。

先看源码:

CircularProgressIndicator

  const CircularProgressIndicator({
    Key key,
    double value,    //进度(取值在 0-1 之间),如果设置该值,则显示具体的进度,如果该值为 null,则执行一个动画,模糊显示
    Color backgroundColor,    //进度背景色
    Animation<Color> valueColor,    //进度颜色
    this.strokeWidth = 4.0,    //进度条的宽度
    String semanticsLabel,    //进度条的Semantics.label
    String semanticsValue,//进度条的Semantics.value
      //上面两个属性,主要用于在 Android TalkBack 或者 iOS VoiceOver 使用,例如视障人士的使用
  })

LinearProgressIndicator

  const LinearProgressIndicator({
    Key key,
    double value,//进度(取值在 0-1 之间),如果设置该值,则显示具体的进度,如果该值为 null,则执行一个动画,模糊显示
    Color backgroundColor,//进度背景色
    Animation<Color> valueColor,//进度颜色
    String semanticsLabel,//进度条的Semantics.label
    String semanticsValue,//进度条的Semantics.value
      //上面两个属性,主要用于在 Android TalkBack 或者 iOS VoiceOver 使用,例如视障人士的使用
  })

进度条的使用很简单,但是我们看到,并没有属性可以控制进度条的大小,事实上,LinearProgressIndicatorCircularProgressIndicator 都是取父容器的尺寸作为绘制的边界的。所以我们只能通过控制进度条的父容器来设置进度条的大小。具体布局控件在后面会讲解。

flutter_spinkit 包提供了多种风格的模糊进度指示器,读者若是感兴趣,可以参考。

results matching ""

    No results matching ""